Skill
আনসিবল (Ansible)

নেটওয়ার্ক অটোমেশন

Latest Technologies - আনসিবল (Ansible) - NCTB BOOK

নেটওয়ার্ক অটোমেশন হলো নেটওয়ার্ক পরিচালনা, কনফিগারেশন, এবং অপারেশনাল টাস্কগুলো স্বয়ংক্রিয়ভাবে সম্পাদন করার একটি প্রক্রিয়া। এটি IT এবং নেটওয়ার্ক প্রশাসকদের জন্য খুবই গুরুত্বপূর্ণ, কারণ এটি কাজের গতি বাড়ায়, মানবিক ত্রুটি কমায়, এবং সিস্টেমগুলির সঠিকতা নিশ্চিত করে। Ansible একটি শক্তিশালী টুল যা নেটওয়ার্ক অটোমেশনের জন্য ব্যবহৃত হয়। চলুন দেখি কিভাবে Ansible নেটওয়ার্ক অটোমেশনের জন্য ব্যবহৃত হয় এবং এর সুবিধা।

Ansible এ নেটওয়ার্ক অটোমেশন

Ansible একটি এজেন্টলেস অটোমেশন টুল, যা SSH বা WinRM ব্যবহার করে নেটওয়ার্ক ডিভাইসগুলির সাথে যোগাযোগ করে। Ansible নেটওয়ার্ক অটোমেশন করার জন্য কিছু গুরুত্বপূর্ণ উপাদান রয়েছে:

মডিউল: Ansible বিভিন্ন নেটওয়ার্ক ডিভাইসের সাথে কাজ করার জন্য বিভিন্ন মডিউল সরবরাহ করে। যেমন:

  • ios_config: Cisco IOS ডিভাইসে কনফিগারেশন প্রয়োগ করতে ব্যবহৃত হয়।
  • ios_command: Cisco IOS ডিভাইসে কমান্ড চালাতে ব্যবহৃত হয়।
  • nxos_config: Cisco NX-OS ডিভাইসে কনফিগারেশন করতে ব্যবহৃত হয়।
  • netconf: NETCONF প্রোটোকলের মাধ্যমে ডিভাইস কনফিগার করতে ব্যবহৃত হয়।

প্লেবুক: Ansible প্লেবুক হল YAML ফরম্যাটে লেখা স্ক্রিপ্ট, যা বিভিন্ন টাস্ক সংকলিত করে। একটি প্লেবুক নেটওয়ার্ক ডিভাইস কনফিগারেশন, পরিচালনা এবং পর্যবেক্ষণের জন্য ব্যবহৃত হয়।

ইনভেন্টরি: ইনভেন্টরি ফাইল একটি ফাইল যা সমস্ত নেটওয়ার্ক ডিভাইসের তথ্য ধারণ করে। এটি hosts এবং তাদের IP অ্যাড্রেসের তালিকা।

উদাহরণ: Cisco IOS ডিভাইসে কনফিগারেশন

১. ইনভেন্টরি ফাইল তৈরি করা

inventory.yml ফাইল তৈরি করুন যেখানে আপনার ডিভাইসের তথ্য থাকবে।

all:
  children:
    cisco_ios:
      hosts:
        ios_device_1:
          ansible_host: 192.168.1.1
          ansible_user: admin
          ansible_password: your_password
          ansible_network_os: ios

২. প্লেবুক তৈরি করা

ios_config_playbook.yml ফাইল তৈরি করুন যেখানে Cisco IOS ডিভাইসে কনফিগারেশন করা হবে।

---
- name: Configure Cisco IOS device
  hosts: cisco_ios
  gather_facts: no
  tasks:
    - name: Configure hostname
      ios_config:
        lines:
          - hostname Ansible_Router

৩. প্লেবুক চালানো

এখন আপনি এই প্লেবুকটি চালাতে পারেন নিচের কমান্ডের মাধ্যমে:

ansible-playbook -i inventory.yml ios_config_playbook.yml --ask-vault-pass

নেটওয়ার্ক অটোমেশনের সুবিধা

  1. দ্রুততা: একাধিক ডিভাইসে একই সময়ে কনফিগারেশন করতে পারে।
  2. মানবিক ত্রুটি কমানো: স্বয়ংক্রিয়করণের মাধ্যমে ত্রুটি কমে যায়।
  3. সহজ স্কেলেবিলিটি: নতুন ডিভাইস যুক্ত করা সহজ হয়।
  4. উচ্চ দক্ষতা: পুনরাবৃত্তিমূলক কাজগুলো অটোমেটেড হওয়ায় কর্মীরা অন্যান্য গুরুত্বপূর্ণ কাজ করতে পারে।

নেটওয়ার্ক অটোমেশন স্যাম্পল প্লেবুক

নিচে একটি উদাহরণ প্লেবুক দেওয়া হলো যা VLAN তৈরি এবং কনফিগার করার জন্য ব্যবহৃত হয়:

---
- name: Configure VLAN on Cisco IOS
  hosts: cisco_ios
  gather_facts: no
  tasks:
    - name: Create VLAN 10
      ios_config:
        lines:
          - vlan 10
          - name VLAN10

নেটওয়ার্ক অটোমেশনের চ্যালেঞ্জ

  1. বিভিন্ন ডিভাইসের জন্য কনফিগারেশন ভিন্নতা: বিভিন্ন ব্র্যান্ডের ডিভাইসের জন্য আলাদা কনফিগারেশন প্রয়োজন।
  2. নেটওয়ার্ক নিরাপত্তা: অটোমেশন করার সময় নিরাপত্তা নিশ্চিত করা গুরুত্বপূর্ণ।
  3. লগিং এবং মনিটরিং: অটোমেশন ব্যবস্থাপনায় লগিং এবং পর্যবেক্ষণ ব্যবস্থা গড়ে তোলা জরুরি।

উপসংহার

Ansible একটি শক্তিশালী টুল যা নেটওয়ার্ক অটোমেশনের জন্য ব্যাপকভাবে ব্যবহৃত হয়। এটি নেটওয়ার্ক ডিভাইস কনফিগারেশন, পরিচালনা এবং পর্যবেক্ষণকে সহজ এবং কার্যকর করে। Ansible ব্যবহার করে আপনি নিরাপদভাবে এবং দক্ষতার সাথে নেটওয়ার্ক অটোমেশন করতে পারেন।

নেটওয়ার্ক ডিভাইস কনফিগার করা

Ansible ব্যবহার করে নেটওয়ার্ক ডিভাইস কনফিগার করা একটি সাধারণ কার্যপ্রণালী, যা আপনার নেটওয়ার্ক ইনফ্রাস্ট্রাকচারে অটোমেশন এবং কনফিগারেশন ব্যবস্থাপনায় সাহায্য করে। Ansible নেটওয়ার্ক ডিভাইস কনফিগারেশনের জন্য বিশেষ মডিউল এবং প্লেবুক ব্যবহারের সুবিধা দেয়।

নেটওয়ার্ক ডিভাইস কনফিগার করার জন্য প্রয়োজনীয় জিনিস

  1. নেটওয়ার্ক ডিভাইস: যেমন রাউটার, সোইচ, ফায়ারওয়াল, ইত্যাদি।
  2. SSH অ্যাক্সেস: ডিভাইসে SSH এর মাধ্যমে লগইন করার জন্য ব্যবহারকারী নাম এবং পাসওয়ার্ড।
  3. Ansible ইনস্টলেশন: Ansible আপনার মেশিনে ইনস্টল করা থাকতে হবে।
  4. নেটওয়ার্ক মডিউল: Ansible কিছু নেটওয়ার্ক মডিউল (যেমন ios_config, nxos_config, juniper_junos, ইত্যাদি) দেয় যা বিভিন্ন ভেন্ডরের ডিভাইসে কনফিগারেশন পরিচালনা করতে ব্যবহৃত হয়।

নেটওয়ার্ক ডিভাইসে কনফিগারেশন করার জন্য Ansible প্লেবুকের উদাহরণ

১. Cisco IOS ডিভাইস কনফিগার করা

এখানে একটি উদাহরণ দেয়া হলো যেখানে Cisco IOS ডিভাইসে কিছু বেসিক কনফিগারেশন করা হয়েছে।

---
- name: Configure Cisco IOS device
  hosts: cisco_routers
  gather_facts: no
  tasks:
    - name: Configure hostname
      ios_config:
        authorize: yes
        config:
          - hostname Router1

    - name: Set interface description
      ios_config:
        authorize: yes
        config:
          - interface GigabitEthernet0/1
          - description Uplink to Core Switch

    - name: Configure IP address on interface
      ios_config:
        authorize: yes
        config:
          - interface GigabitEthernet0/1
          - ip address 192.168.1.1 255.255.255.0
          - no shutdown

২. Juniper JUNOS ডিভাইসে কনফিগারেশন

Juniper ডিভাইসে কনফিগার করার জন্য juniper_junos_config মডিউল ব্যবহার করা হয়:

---
- name: Configure Juniper JUNOS device
  hosts: juniper_routers
  gather_facts: no
  tasks:
    - name: Configure hostname
      juniper_junos_config:
        lines:
          - set system host-name Router1

    - name: Configure interface
      juniper_junos_config:
        lines:
          - set interfaces ge-0/0/0 description "Uplink to Core Switch"
          - set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.1/24

Ansible Inventory ফাইল

নেটওয়ার্ক ডিভাইসগুলোর জন্য একটি ইনভেন্টরি ফাইল তৈরি করতে হবে যেখানে ডিভাইসের তথ্য থাকবে। উদাহরণস্বরূপ:

[cisco_routers]
192.168.1.2 ansible_user=admin ansible_password=your_password ansible_network_os=ios

[juniper_routers]
192.168.1.3 ansible_user=admin ansible_password=your_password ansible_network_os=junos

প্লেবুক রান করা

এখন আপনি নেটওয়ার্ক ডিভাইসে কনফিগারেশন করার জন্য তৈরি করা প্লেবুক রান করতে পারেন:

ansible-playbook -i inventory.ini configure_network.yml

গুরুত্বপূর্ণ পয়েন্টসমূহ

  • ডিভাইসের নিরাপত্তা: নিশ্চিত করুন যে ডিভাইসে SSH এর মাধ্যমে নিরাপদে লগইন করা যায়।
  • ভেন্ডর নির্ভর মডিউল: বিভিন্ন নেটওয়ার্ক ভেন্ডরের জন্য ভিন্ন মডিউল ব্যবহার করতে হবে।
  • ডেটা ব্যাকআপ: কনফিগারেশন পরিবর্তনের আগে ডিভাইসের বর্তমান কনফিগারেশন ব্যাকআপ রাখা একটি ভাল অভ্যাস।

সংক্ষেপে

Ansible ব্যবহার করে নেটওয়ার্ক ডিভাইস কনফিগার করা একটি কার্যকর পদ্ধতি, যা অটোমেশন এবং মেইনটেনেন্সকে সহজ করে। বিভিন্ন ভেন্ডরের জন্য Ansible এ মডিউল এবং টুলস রয়েছে, যা বিভিন্ন কনফিগারেশন সম্পাদন করতে সহায়ক। Ansible প্লেবুক এবং ইনভেন্টরি ব্যবহার করে আপনি সহজেই নেটওয়ার্ক ডিভাইস কনফিগারেশন এবং পরিচালনা করতে পারেন।

নেটওয়ার্ক মডিউল এবং প্লাগইন

Ansible-এ নেটওয়ার্ক মডিউল এবং প্লাগইন ব্যবহার করে আপনি বিভিন্ন নেটওয়ার্ক ডিভাইসের সাথে কাজ করতে পারেন। এখানে আমরা নেটওয়ার্ক মডিউল ও প্লাগইন সম্বন্ধে বিস্তারিত আলোচনা করব।

নেটওয়ার্ক মডিউল

Ansible নেটওয়ার্ক মডিউলগুলো ব্যবহার করে বিভিন্ন নেটওয়ার্ক ডিভাইসের কনফিগারেশন ও পরিচালনা করতে পারেন। কিছু জনপ্রিয় নেটওয়ার্ক মডিউল হল:

  1. ios_config: Cisco IOS ডিভাইসের কনফিগারেশন পরিবর্তন করতে ব্যবহৃত হয়।
  2. ios_command: Cisco IOS ডিভাইসে কমান্ড চালানোর জন্য ব্যবহৃত হয়।
  3. juniper_junos_config: Juniper ডিভাইসে কনফিগারেশন পরিবর্তন করতে ব্যবহৃত হয়।
  4. eos_config: Arista EOS ডিভাইসে কনফিগারেশন পরিবর্তন করতে ব্যবহৃত হয়।
  5. nxos_config: Cisco NX-OS ডিভাইসে কনফিগারেশন পরিবর্তন করতে ব্যবহৃত হয়।

উদাহরণ

Cisco IOS ডিভাইসে কনফিগারেশন পরিবর্তন করা

- name: Configure Cisco IOS
  hosts: cisco
  gather_facts: no
  tasks:
    - name: Set hostname
      ios_config:
        lines:
          - hostname AnsibleRouter
      register: result

    - debug:
        var: result

নেটওয়ার্ক প্লাগইন

Ansible নেটওয়ার্ক প্লাগইনগুলি আপনাকে বিশেষ ধরনের কাজ সম্পাদন করতে সাহায্য করে, যেমন:

  • connection: নেটওয়ার্ক ডিভাইসে সংযোগ করার জন্য ব্যবহৃত হয় (যেমন SSH বা HTTP)।
  • inventory: নেটওয়ার্ক ইনভেন্টরি তথ্য সংগ্রহ করার জন্য ব্যবহৃত হয়।
  • lookup: নেটওয়ার্ক প্লাগইনগুলির মাধ্যমে তথ্য অনুসন্ধান করতে ব্যবহৃত হয়।

উদাহরণ

SSH সংযোগের মাধ্যমে নেটওয়ার্ক ডিভাইসে কাজ করা

- name: Manage network device
  hosts: all
  connection: network_cli
  tasks:
    - name: Execute command
      ios_command:
        commands:
          - show ip interface brief

উপসংহার

Ansible-এ নেটওয়ার্ক মডিউল এবং প্লাগইন ব্যবহার করে আপনি আপনার নেটওয়ার্ক ডিভাইসগুলোর কনফিগারেশন ও পরিচালনা সহজে করতে পারেন। এগুলো বিভিন্ন ডিভাইসের সাথে যোগাযোগ ও কার্যকরী কনফিগারেশন তৈরির জন্য অপরিহার্য।

Cisco, Juniper এর মতো ডিভাইসে Ansible এর ব্যবহার

Ansible নেটওয়ার্ক অটোমেশনের জন্য একটি জনপ্রিয় টুল, যা Cisco এবং Juniper-এর মতো বিভিন্ন নেটওয়ার্ক ডিভাইসে ব্যবহৃত হয়। Ansible এর মাধ্যমে এই ডিভাইসগুলোকে কনফিগার, পরিচালনা এবং অটোমেট করা যায়। আসুন দেখি কিভাবে Ansible এই ডিভাইসগুলোতে ব্যবহৃত হয় এবং এর জন্য কিছু উদাহরণ।

Cisco ডিভাইসে Ansible ব্যবহার

১. ইনভেন্টরি ফাইল তৈরি করা

Cisco ডিভাইসগুলোর জন্য একটি ইনভেন্টরি ফাইল তৈরি করুন, যেখানে ডিভাইসের IP ঠিকানা, ব্যবহারকারী নাম, এবং পাসওয়ার্ড থাকবে।

# inventory_cisco.yml
all:
  children:
    cisco_ios:
      hosts:
        ios_device_1:
          ansible_host: 192.168.1.1
          ansible_user: admin
          ansible_password: your_password
          ansible_network_os: ios

২. Cisco ডিভাইসে কনফিগারেশন প্লেবুক

নিচে একটি প্লেবুকের উদাহরণ দেয়া হলো যা Cisco ডিভাইসে কিছু কনফিগারেশন সেট আপ করবে।

# ios_config_playbook.yml
---
- name: Configure Cisco IOS device
  hosts: cisco_ios
  gather_facts: no
  tasks:
    - name: Configure hostname
      ios_config:
        lines:
          - hostname Ansible_Router

    - name: Create VLAN 10
      ios_config:
        lines:
          - vlan 10
          - name VLAN10

    - name: Configure interface
      ios_config:
        lines:
          - interface GigabitEthernet0/1
          - description Connected to Internet
          - no shutdown

৩. প্লেবুক চালানো

এখন আপনি এই প্লেবুকটি চালাতে পারেন নিচের কমান্ডের মাধ্যমে:

ansible-playbook -i inventory_cisco.yml ios_config_playbook.yml --ask-vault-pass

Juniper ডিভাইসে Ansible ব্যবহার

১. ইনভেন্টরি ফাইল তৈরি করা

Juniper ডিভাইসগুলোর জন্যও একইভাবে ইনভেন্টরি ফাইল তৈরি করতে হবে।

# inventory_juniper.yml
all:
  children:
    juniper:
      hosts:
        juniper_device_1:
          ansible_host: 192.168.2.1
          ansible_user: admin
          ansible_password: your_password
          ansible_network_os: junos

২. Juniper ডিভাইসে কনফিগারেশন প্লেবুক

নিচে একটি প্লেবুকের উদাহরণ দেয়া হলো যা Juniper ডিভাইসে কিছু কনফিগারেশন সেট আপ করবে।

# junos_config_playbook.yml
---
- name: Configure Juniper device
  hosts: juniper
  gather_facts: no
  tasks:
    - name: Configure hostname
      junos_config:
        lines:
          - set system host-name Ansible_Router

    - name: Create VLAN 10
      junos_config:
        lines:
          - set vlans VLAN10 vlan-id 10

    - name: Configure interface
      junos_config:
        lines:
          - set interfaces ge-0/0/0 description "Connected to Internet"
          - set interfaces ge-0/0/0 enable

৩. প্লেবুক চালানো

এখন আপনি এই প্লেবুকটি চালাতে পারেন নিচের কমান্ডের মাধ্যমে:

ansible-playbook -i inventory_juniper.yml junos_config_playbook.yml --ask-vault-pass

Ansible এর সুবিধা Cisco ও Juniper ডিভাইসে

  1. এজেন্টলেস: Ansible এজেন্ট ছাড়াই কাজ করে, যা কনফিগারেশন সহজ করে।
  2. সহজ YAML ফরম্যাট: প্লেবুক এবং টাস্কগুলি YAML ফরম্যাটে লেখা হয়, যা পড়া এবং বুঝতে সহজ।
  3. একাধিক ডিভাইসের পরিচালনা: একাধিক ডিভাইসে একই সময়ে কনফিগারেশন এবং ব্যবস্থাপনা করা যায়।
  4. কাস্টমাইজেশন: প্লেবুক ও টাস্কগুলিকে আপনার প্রয়োজন অনুযায়ী কাস্টমাইজ করা যায়।
  5. ট্র্যাকিং এবং লগিং: সমস্ত পরিবর্তন লগ করা যায়, যা ডিবাগিং এবং অডিটিংকে সহজ করে।

চ্যালেঞ্জসমূহ

  1. ডিভাইসের বিভিন্ন কনফিগারেশন পদ্ধতি: বিভিন্ন ব্র্যান্ডের ডিভাইসের জন্য আলাদা কনফিগারেশন প্রয়োজন।
  2. নেটওয়ার্ক নিরাপত্তা: অটোমেশন করার সময় নিরাপত্তা নিশ্চিত করা গুরুত্বপূর্ণ।
  3. লগিং এবং মনিটরিং: অটোমেশন ব্যবস্থাপনায় লগিং এবং পর্যবেক্ষণ ব্যবস্থা গড়ে তোলা জরুরি।

উপসংহার

Ansible Cisco এবং Juniper ডিভাইসগুলির জন্য একটি শক্তিশালী অটোমেশন টুল। এটি নেটওয়ার্ক কনফিগারেশন, পরিচালনা, এবং অটোমেশনকে সহজ এবং কার্যকর করে। Ansible ব্যবহার করে আপনি নিরাপদভাবে এবং দক্ষতার সাথে নেটওয়ার্ক ডিভাইস পরিচালনা করতে পারেন।

Promotion